package ${domain}.module.${moduleName}.req;

import ${domain}.frame.base.BaseFindRequest;
import java.util.Date;
<#if table.has('Dict')>
import ${domain}.frame.validation.Dict;
</#if>
<#if table.has('Select')>
import ${domain}.frame.validation.Select;
</#if>

/**
 * ${table.getCName()}FindRequest - ${table.tableComment}查询
 *
 * @author ${author?default("")}
 * @version 0.0.1
 * @since ${.now?string["yyyy-MM-dd"]}
 */
public class ${table.getCName()}FindRequest extends BaseFindRequest {
<#list table.fields as field>
<#if field.isQuery>

    /**
     * ${field.fieldComment?default("")}.
    <#if field.fieldType?contains("Select")>
        <#list field.selectItems as item>
     * ${item.value}:${item.label}
        </#list>
    </#if>
     */
    <#if field.fieldType?contains("Dict")>
    @Dict(name = "${field.getFieldName()}")
    </#if>
    <#if field.fieldType?contains("Select")>
    @Select(${toString(field.selectItems)})
    </#if>
    private ${field.getFieldTypeJava()} ${field.getFName()};
</#if>
<#if field.isLike>

    /**
     * ${field.fieldComment?default("")}模糊查询.
     */
    private ${field.getFieldTypeJava()} ${field.getFName()}Like;
</#if>
</#list>

    /**
     * 开始日期.
     */
    private Date startDate;

    /**
     * 结束日期.
     */
    private Date endDate;
<#list table.fields as field>
<#if field.isQuery>

    public ${field.getFieldTypeJava()} ${field.getterName()}() {
        return this.${field.getFName()};
    }

    public void ${field.setterName()}(${field.getFieldTypeJava()} ${field.getFName()}) {
        this.${field.getFName()} = ${field.getFName()};
    }
</#if>
<#if field.isLike>

    public ${field.getFieldTypeJava()} ${field.getterName()}Like() {
        return this.${field.getFName()}Like;
    }

    public void ${field.setterName()}Like(${field.getFieldTypeJava()} ${field.getFName()}Like) {
        this.${field.getFName()}Like = ${field.getFName()}Like;
    }
</#if>
</#list>

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }
}
